package com.xxx.ui;

import java.awt.*;
import javax.swing.*;

// 游戏主界面
public class GameFrame extends JFrame {
  public GameFrame() {
    // 初始化界面
    initFrame();
    // 初始化菜单
    initMenuBar();

    // 初始化图片 先写方法名，然后alt+回车，idea帮生成方法
    initImage();
    // 显示页面，放在最后，等程序加载完成再展示
    this.setVisible(true);
  }

  private void initImage() {
    // ctrl + n，搜索类，搜到之后点击进入，然后ctrl + f12，查看该类有哪些方法

    int number = 1;

    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < 4; j++) {
        // 创建imageIcon对象
        ImageIcon icon =
            new ImageIcon(
                "C:\\Users\\18761\\Desktop\\study-java\\java-game\\game-img\\girl\\"
                    + number
                    + ".png");
        // 创建jlabel对象（管理容器）
        JLabel jLabel = new JLabel(icon);
        jLabel.setBounds(130 * j, 130 * i, 130, 130);
        // 把管理容器添加到页面
        this.getContentPane().add(jLabel);

        number++;
      }
    }
  }

  private void initMenuBar() {
    // 创建菜单栏
    JMenuBar jMenuBar = new JMenuBar();
    // 创建菜单
    JMenu functionJMenu = new JMenu("功能");
    JMenu aboutJMenu = new JMenu("关于我们");
    // 创建菜单项
    JMenuItem replayItem = new JMenuItem("重新游戏");
    JMenuItem reLoginItem = new JMenuItem("重新登陆");
    JMenuItem closeItem = new JMenuItem("关闭游戏");

    JMenuItem accountItem = new JMenuItem("关于我们");

    // 添加菜单项
    functionJMenu.add(replayItem);
    functionJMenu.add(reLoginItem);
    functionJMenu.add(closeItem);

    aboutJMenu.add(accountItem);

    // 添加菜单栏
    jMenuBar.add(functionJMenu);
    jMenuBar.add(aboutJMenu);

    // 讲菜单栏添加到界面
    this.setJMenuBar(jMenuBar);
  }

  private void initFrame() {
    // this 关键字，先在本类寻找，本类找不到父类找
    // 设置界面的宽高
    this.setSize(800, 600);

    // 设置标题
    this.setTitle("拼图游戏主页面");
    // 设置置顶
    this.setAlwaysOnTop(true);
    // 页面居中
    this.setLocationRelativeTo(null);
    // 关闭后台程序
    this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    // 取消默认排列方式
    this.setLayout(null);
  }
}
